package cn.hxzy.service;


import cn.hxzy.domain.ClassTable;
import cn.hxzy.domain.User;
import cn.hxzy.domain.vo.ClassStudentVo;
import cn.hxzy.domain.vo.StudentVo;
import cn.hxzy.domain.vo.StudentVo2;
import cn.hxzy.response.R;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * @Author LiDong
 * @Description
 * @create 2024/6/22 15:09
 */

public interface TeacherService {

    // 创建班级
    boolean createClassroom(ClassTable classTable);

    //根据班级名称查询班级
    int selectOneClass(String className);

    // 通过教师id查询班级
    List<ClassTable> findClassroomByTeacherId(Integer teacherId);

    // 更新班级
    String updateClass(Integer classId,String className);

    // 删除班级
    Boolean deleteClassroom(Long classroomId);

    // 模糊查询班级
    List<ClassTable> findClassroomByName(String name);

    // 获取账户列表，支持筛选
    List<User> listAccounts(Integer className, Integer majorName, Integer admissionYear);

    // 更新学生信息
    R updateStudent(StudentVo studentVo);

    // 删除学生账户
    User deleteStudent(Long userId);

    // 导入学生到班级
    int importStudents(Long classroomId, MultipartFile file);

    // 导出班级内的学生列表
    MultipartFile exportStudents(Long classroomId);

    //导出老师名下的所有学生
    List<StudentVo2> selectStudentByTeacher(String userType);


    // 获取所有课程
    List<ClassStudentVo> selectAllClassList(Integer courseId);

    List<ClassStudentVo> selectClassBySearchKey(Integer courseId, String className, String createName, Integer isAuthorized);

    R createClassroomCourseAuthorized(String courseId, String classId, Boolean isAuthorized);
}
